@echo off
chcp 65001
echo Windows Process Spy - 清理工具
echo ================================

echo 请选择清理操作:
echo 1. 清理编译缓存 (推荐)
echo 2. 清理发布文件
echo 3. 清理所有文件 (危险)
echo 4. 退出

set /p choice=请输入选择 (1-4): 

if "%choice%"=="1" goto clean_cache
if "%choice%"=="2" goto clean_release
if "%choice%"=="3" goto clean_all
if "%choice%"=="4" goto exit
echo 无效选择，请重新运行脚本
pause
goto exit

:clean_cache
echo.
echo 清理编译缓存...
if exist build rmdir /s /q build
if exist dist rmdir /s /q dist
if exist release rmdir /s /q release
if exist __pycache__ rmdir /s /q __pycache__

REM 清理所有__pycache__目录
for /d /r . %%d in (__pycache__) do @if exist "%%d" rmdir /s /q "%%d"

REM 清理.pyc和.pyo文件
del /s /q *.pyc 2>nul
del /s /q *.pyo 2>nul

REM 清理.spec文件
del /s /q *.spec 2>nul

REM 清理日志文件
del /s /q *.log 2>nul

echo 编译缓存清理完成！
goto end

:clean_release
echo.
echo 清理发布文件...
if exist build rmdir /s /q build
if exist dist rmdir /s /q dist
if exist release rmdir /s /q release
echo 发布文件清理完成！
goto end

:clean_all
echo.
echo 警告：这将删除除核心文件外的所有文件！
set /p confirm=确认继续吗？(y/N): 
if /i not "%confirm%"=="y" (
    echo 操作已取消
    goto end
)

echo 清理所有文件...
REM 保留核心文件
if exist main.py (
    echo 保留: main.py
)
if exist cli.py (
    echo 保留: cli.py
)
if exist requirements.txt (
    echo 保留: requirements.txt
)
if exist clean.bat (
    echo 保留: clean.bat
)
if exist build_universal.py (
    echo 保留: build_universal.py
)
if exist build.bat (
    echo 保留: build.bat
)

REM 删除其他所有文件
for %%f in (*) do (
    if not "%%f"=="main.py" (
        if not "%%f"=="cli.py" (
            if not "%%f"=="requirements.txt" (
                if not "%%f"=="clean.bat" (
                    if not "%%f"=="build_universal.py" (
                        if not "%%f"=="build.bat" (
                            if not "%%f"=="pyproject.toml" (
                                if not "%%f"=="PROJECT_GUIDE.md" (
                                    if not "%%f"=="screenshot.bat" (
                                        if not "%%f"=="setup_uv.bat" (
                                            del /q "%%f" 2>nul
                                            echo 已删除: %%f
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )
)

REM 删除所有目录
for /d %%d in (*) do (
    if not "%%d"=="." (
        if not "%%d"==".." (
            rmdir /s /q "%%d" 2>nul
            echo 已删除目录: %%d
        )
    )
)

echo 所有文件清理完成！
goto end

:end
echo.
echo 清理操作完成！
pause

:exit
